unit UFrmProduos;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ExtCtrls, StdCtrls, DBCtrls, Buttons, Mask, RXCtrls, Grids,
  DBGrids, jpeg;

type
  TFrmProdutos = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    btnPrimeiro: TSpeedButton;
    btnAnterior: TSpeedButton;
    Bevel1: TBevel;
    btnProximo: TSpeedButton;
    btnUltimo: TSpeedButton;
    btnGravar: TSpeedButton;
    btnExcluir: TSpeedButton;
    SpeedButton1: TSpeedButton;
    btnAdicionar: TSpeedButton;
    SpeedButton2: TSpeedButton;
    btnRetornar: TSpeedButton;
    Panel2: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    DBEdit2: TDBEdit;
    DBCheckBox1: TDBCheckBox;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    Label7: TLabel;
    Bevel2: TBevel;
    Image1: TImage;
    StatusBar1: TStatusBar;
    imgedicao: TImage;
    imgconsulta: TImage;
    Edit1: TEdit;
    RxLabel1: TRxLabel;
    DBGrid1: TDBGrid;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure btnPrimeiroClick(Sender: TObject);
    procedure btnAnteriorClick(Sender: TObject);
    procedure btnProximoClick(Sender: TObject);
    procedure btnUltimoClick(Sender: TObject);
    procedure btnGravarClick(Sender: TObject);
    procedure btnExcluirClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure btnAdicionarClick(Sender: TObject);
    procedure btnRetornarClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmProdutos: TFrmProdutos;

implementation

uses Modulo;

{$R *.DFM}

procedure TFrmProdutos.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   Action := CaFree;
end;

procedure TFrmProdutos.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
   if MessageDlg('Tem certeza que deseja fechar o Cadastro de Produtos', Mtconfirmation, [mbyes, mbno], 0) = mrno then
      CanClose := false;
end;

procedure TFrmProdutos.btnPrimeiroClick(Sender: TObject);
begin
   DMEscola.Qprodutos.First;
end;

procedure TFrmProdutos.btnAnteriorClick(Sender: TObject);
begin
   DMEscola.Qprodutos.Prior;
   if (DMEscola.Qprodutos.Bof) then
      DMEscola.Qprodutos.First;
end;

procedure TFrmProdutos.btnProximoClick(Sender: TObject);
begin
   DMEscola.Qprodutos.Next;
   if (DMEscola.Qprodutos.EOF) then
      DMEscola.Qprodutos.Last;
end;

procedure TFrmProdutos.btnUltimoClick(Sender: TObject);
begin
   DMEscola.Qprodutos.Last;
end;

procedure TFrmProdutos.btnGravarClick(Sender: TObject);
begin
   DMEscola.Qprodutos.Post;
   DMEscola.Qprodutos.Edit;
   ShowMessage('Gravação Efeturada com sucesso');
end;

procedure TFrmProdutos.btnExcluirClick(Sender: TObject);
begin
   if MessageDLg('Confirmar Exclusão do Produto?', MTConfirmation, [mbyes, mbno], 0) = mryes then
      DMEscola.Qprodutos.Delete;
end;

procedure TFrmProdutos.SpeedButton1Click(Sender: TObject);
begin
   DMEscola.Qprodutos.Edit;
end;

procedure TFrmProdutos.btnAdicionarClick(Sender: TObject);
begin
   DMEscola.Qprodutos.Append;
   DBEdit2.SetFocus;
   DBCheckBox1.State := cbUnChecked;
end;

procedure TFrmProdutos.btnRetornarClick(Sender: TObject);
begin
   close;
end;

procedure TFrmProdutos.FormShow(Sender: TObject);
begin
   DMEscola.Qprodutos.Close;
   DMEscola.Qprodutos.SQL.Clear;
   DMEscola.Qprodutos.SQL.Add('Select * From Produtos');
   DMEscola.Qprodutos.Open;
   DBEdit2.SetFocus;
end;

procedure TFrmProdutos.SpeedButton2Click(Sender: TObject);
begin
   RXLabel1.Visible := true;
   Edit1.Visible := true;
   Panel2.Visible := false;
   Edit1.SetFocus;
   imgconsulta.visible := true;
   if imgedicao.Visible = true then
      imgedicao.visible := false;
end;

procedure TFrmProdutos.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
   vBusca : String;
begin
  Case key of
    VK_Return:
     Begin
       if (Edit1.text = '') then
          begin
             ShowMessage('Digite um nome '+#13+
                      'para pesquisar!');
             Edit1.SetFocus;
             exit;
          end;
       if (Edit1.text <> '') then
          begin
              vBusca:='';
              DMEscola.Qprodutos.Close;
              DMEscola.Qprodutos.SQL.Clear;
              DMEscola.Qprodutos.Sql.Add ('Select * From Produtos');
              DMEscola.Qprodutos.Sql.Add('WHERE ');
              DMEscola.Qprodutos.Sql.Add('(Descricao like :pNOME)');
              DMEscola.Qprodutos.ParamByName('pNOME').AsString:='%'+Edit1.text+'%';
              DMEscola.Qprodutos.open;
              vBusca:=DMEscola.QprodutosDescricao.Text;
              If vBusca <> '' then
               begin
                  DBGrid1.visible:=True;
                  DBGrid1.setfocus
               end
               else
                  If MessageDlg('Produto não encontrado na Base de Dados'+#13+'Deseja cadastrar agora?',mtConfirmation, [mbyes, mbno],0) =mryes then
                  begin
                      DMEscola.QProdutos.Append;
                      Panel2.Visible := true;
                      DBEdit1.text := Edit1.text;
                      Edit1.Visible := false;
                      RxLabel1.Visible := false;
                      DBEdit3.SetFocus;
                  end;

              end;
       end;
    VK_ESCAPE:
        begin
           Edit1.Visible := false;
           RxLabel1.Visible := false;
           Panel2.Visible := true;
        end;
  end;
end;

procedure TFrmProdutos.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
Case Key of
   VK_Return:
    Begin
       DBGrid1.visible:=False;
       Panel2.visible := true;
       Edit1.visible := False;
       DBEdit2.setFocus;
       RxLabel1.visible := false;
       imgedicao.visible := true;
       if imgconsulta.visible = true then
          imgconsulta.visible:= false;
    end;
  end;
end;

end.
